// Stream流
// 在nodejs中，Stream流是指一组处理数据的抽象接口
// Stream流（数据流），在读写、数据传输时，将大量数据分段进行处理

// 加载模块
const fs = require('fs');

// 一次读取所有数据，占用更多的系统资源，容易导致程序性能问题或程序崩溃
// fs.readFile('./datas.txt',(err,data)=>{
//     if (err) throw new Error('读取文件失败');

//     // 读取成功，打印数据
//     console.log( data );// <Buffer ...>
//     console.log( data+'' );// <Buffer ...>转成字符串数据
// })


// 使用流来分段读取大量的数据：

// 创建一个可读流
let readStream = fs.createReadStream('./datas.txt');

let datas = '';

// 添加data事件（读取到一段数据时会触发一次data事件）
readStream.on('data',(chunk)=>{
    console.log( '--------------------------------------------------' );
    console.log( chunk );// <Buffer ...>

    datas += chunk;
})

// 添加end事件（读取数据完成时触发end事件）
readStream.on('end',()=>{
    console.log( datas );
})

